Public key cryptosystem using finite non abelian groups

ABSTRACT

The present invention relates to a method of encryption and decryption comprises the steps of: selecting a generator and a first element of a first non abelian group, respectively, computing a first inner automorphism which is used as a first public key, and generating a second public key by using a secret key being a first integer and the first public key; expressing a plain text by a product of generator of a second non abelian group, computing a second inner automorphism by using an arbitrary second integer and the first public key, computing a third inner automorphism by using the second integer and the second public key, and generating a ciphertext by using the third inner automorphism; and generating a fourth inner automorphism by using the secret key and the second inner automorphism, and decrypting the ciphertext by using the fourth inner automorphism.

This is a nationalization of PCT/KR01/01747 filed Oct. 17, 2001 and published in English.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to a public key cryptosystem using finite non abelian groups and, in particular, to a method of generating finite non abelian groups, an implementation of efficient public key cryptosystem using the non abelian groups and an application method thereof.

2. Background Art

A conventional or symmetric cryptosystem is a system for encrypting and decrypting a document by using a secret key and has disadvantages that there is difficulty in administration of the secret key and a digital signature can not be appended to a message to be transmitted since each of users must have identical secret key.

A public key cryptosystem introduced by Diffie and Hellman in 1976 to provide a new adventure in modem cryptology is a system using a public key and a secret key, in which the public key is publicly known so as to be used by anyone and the secret key is kept by users so that non-public exchange of message is enabled between users having the public key.

Conventionally, RSA encryption scheme using difficult factorization problem of a composite number and ElGamal-type cryptosystem using Discrete Logarithm Problem (DLP) were used. Recently, a braid operation cryptosystem using difficult conjugacy problem in non abelian groups is developed. A public key cryptosystem using elliptic curve is disclosed in “Public key cryptosystem with an elliptic curve” of U.S. Pat. No. 5,272,755 registered on Dec. 21, 1993, and a braid operation cryptosystem using conjugacy problem is disclosed in “New public key cryptosystem using braid group” published on an article book of Advances in Cryptology Crypto 2000 by K. H. Ko, et al. on August 2000.

In case of using the Discrete Logarithm Problem such as ElGamal cipher in Z_(p), the size of group and key is increased in finite field, which is an abelian group, due to the development of efficient algorithm such as index calculus. Therefore, to solve these problems, a public key cryptosystem must be suggested which can avoid the conventional algorithm for solving the Discrete Logarithm Problem and sufficiently stably maintain the group and key.

SUMMARY OF THE INVENTION

In addition, the problem in using the non abelian groups is that since if the representation of a given element is not pre-established, a plain text and a deciphertext may be recognized to be different, therefore, a selected arbitrary element must be represented in a given way of representation. Therefore, in a cryptosystem using non abelian groups, the problem of whether an arbitrary element can be efficiently represented in a given way of representation is very important.

Therefore, an object of the present invention is to provide a method of encrypting and decrypting a message using finite non abelian groups which can eliminate the disadvantages described above by using the Discrete Logarithm Problem using automorphism of finite non abelian groups.

An encryption/decryption process of the present invention comprises the steps of:

selecting a generator and a first element of a first non abelian group, respectively, computing a first inner automorphism which is used as a first public key, and generating a second public key by using a secret key being a first integer and the first public key;

expressing a plain text by a product of generator of a second non abelian group, computing a second inner automorphism by using an arbitrary second integer and the first public key, computing a third inner automorphism by using the second integer and the second public key, and generating a ciphertext by using the third inner autmorphism; and

generating a fourth inner automorphism by using the secret key and the second inner automorphism, and decrypting the ciphertext by using the fourth inner automorphism.

A generalized encryption/decryption process of the present invention comprises the steps of:

selecting a first element of a first group, computing a first automorphism of a second group which is used as a first public key, and generating a second public key by using a secret key being a first integer and the first public key;

expressing a plain text by a product of generator of the second group, computing a second automorphism by using an arbitrary second integer and the first public key, computing a third automorphism by using the second integer and the second public key, and generating a ciphertext by using the third automorphim; and

generating a fourth automorphism by using the secret key and the second automorphism by using the secret key and the second automorphism, and decrypting the ciphertext by using the fourth antomorphism.

A signature scheme of the present invention comprises the steps of:

selecting generators and an element of non abelian group, respectively, computing a first inner automorphism which is used as a first public key, and generating a second public key by using a secret key being an integer and the first public key;

computing a second inner automorphism by using the first public key and an arbitrary random number, generating a symmetric key by using the second inner automorphism, computing a ciphertext by encrypting a plain text containg an agreed upon type of redundancy by using the symmetric key, computing a hash function by using the ciphertext, and signing by using the random number and hash function; and

checking whether the signature exists in a predetermined range, computing the hash function, computing a third inner automorphism by using the signature, the integer and the hash function, recovering the symmetric key by using the third inner automorphism, obtaining a deciphertext by using the symmetric key, and checking whether the signature is valid signature by checking an agreed upon redundancy in the deciphertext.

A method of key exchanging of the present invention comprises the steps of:

selecting generators and an element of non abelian group, respectively, and computing a first inner automorphism which is used as a first public key;

a first user computing a second inner automorphism by using an arbitrary first random number and the public key and providing the second inner automorphism to a second user;

the second user generating a symmetric key by computing a third inner automorphism by using an arbitrary second random number and the second inner automorphism; and

the first user computing the third inner automorphism by using the fourth inner automorphism and the first random number, and obtaining the symmetric key by using the third inner automorphism.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, effects, features and advantages of the present invention will become more apparent by describing in detail the preferred embodiment of the present invention with reference to the attached drawings in which:

FIG. 1 is a flow chart illustrating a method of generating a public key using finite non abelian groups according to the present invention;

FIG. 2 is a flow chart illustrating a method of encrypting and decrypting a message using the public key shown in FIG. 1;

FIG. 3 is a flow chart illustrating an electronic signing method using the public key shown in FIG. 1;

FIG. 4 is a flow chart illustrating a digital signature confirming method using the public key shown in FIG. 1; and

FIG. 5 is a flow chart illustrating a key exchanging method using the public key shown in FIG. 1.

Similar reference characters refer to similar parts in the several views of the drawings.

DETAILED DESCRIPTION OF THE INVENTION

A detailed description of the present invention is given below with reference to the accompany drawings.

FIGS. 1 to 5 are flow chart illustrating a public key cryptosystem using finite non abelian groups according to an embodiment of the present invention, where the contents in the square brackets relates to a cryptosystem of generalized finite non abelian groups which will be described later.

The present invention suggests a new encrypting method based on a special conjugacy problem and a Discrete Logarithm Problem. Let p be a big prime number, G be a non abelian group of which the number of central elements is not one, a first element g be an element of G, an order p and be not in the center of G, and {e_(i)} be a generator set of G.

Here, when Inn(g)(x)=gxg⁻¹, if {Inn(g)(e_(i))} is known, an isomorphism Inn(g) can be obtained. That is, if m is represented as e_(j) ₁ . . . e_(j) _(n) , then Inn(g)(m)=Inn(g)(e_(j) ₁ ) . . . Inn(g)(e_(j) _(n) ). Therefore, Inn(g) can be represented as {Inn(g)(e_(i))}.

Then, the procedure of generating a public key used in encrypting a plain text M as shown in FIG. 1 is as follows.

The prime number p is selected (step S1) and the finite non abelian group G having the characteristics described above is selected (step S2). The generator {e_(i)} of the element of the finite non abelian group G is selected, and the element g which is not a central element and has an order being a large prime number p is selected (step S3). Then, an inner automorphism Inn(g) for g given above is computed by the following equation 1 (step S4). Inn(g)={Inn(g)(e _(i))}={ge _(i) g ⁻¹}  (1)

Next, an arbitrary first integer a which is smaller than the prime number p is set as a secret key and the public key is set as Inn(g^(a)) (referred to as “a second pubic key” herein below) using the inner automorphism Inn(g) (referred to as “a first public key” herein below) and the secret key a (steps S5 and S6).

Next, the procedure of encrypting and decrypting the plain text M using the secret key and the public key is described below with reference to FIG. 2.

The plain text M is transformed to the element m of the non abelian group G (that is, m∈G), and the element m is represented as a product of the generator {e_(i)} (steps S7 and S8). If an arbitrary second integer b is selected, a second inner automorphism Inn(g^(b)) and a third inner automorphism Inn(g^(ab)) are computed respectively using the first public key and the second public key and b (steps S9 and S10). A ciphertext E is computed by an equation 2 given below by using the second inner automorphism Inn(g^(b)) and the third inner automorphism Inn(g^(ab)) and transmitted to a receiver side (step S11). In addition, the second inner automorphism Inn(g^(b)) is transmitted to the receiver side together with the ciphertext E. E=Inn(g ^(ab))(m)=(Inn(g ^(a))^(b))(m)  (2)

The transmitted ciphertext E is decrypted as follows. The transmitted ciphertext E is expressed as a product of the generator (step S12).

Next, a fourth inner automorphism Inn(g^(−ab))=Inn(g^(b))^(−a) is computed using the secret key a and the second inner automorphism Inn(g^(b))(step S13). If the computed value is used, since m is computed by equation 3, the decryption is effected (step S14). m=Inn(g ^(−ab))E  (3)

The non abelian G for implementation of the message encryption/decryption method described above can be generated by a semi-direct product by an equation 4. G=SL(2, Z _(p))x _(θ) Z _(p)  (4)

Here, SL(2,Z_(p)) is a subgroup of the non abelian group G. A cyclic subgroup a having an order p of SL(2, Z_(p)) exists in G, and θ is defined as equation 5. θ=Inn∘θ₁ :Z _(p)→Aut(SL(2,Z _(p)))  (5)

Here, θ₁ is an isomorphism from Z_(p) to the cyclic subgroup. Then θ(y)(x)=θ₁ (y)x θ₁ (y)⁻¹. Using this equation, the conjugate of (a,b) is computed by equation 6. Here, let g=(x,y). (x,y)(a,b)(x,y)⁻¹=(xθ(y)(a)θ(b)(x ⁻¹),b)  (6)

Here, fixing b=0, equation 7 can be obtained. (x,y)(a,0)(x,y)⁻¹=(xθ(y)(a)x ⁻¹,0)=((xθ ₁(y))a(xθ ₁(y))⁻¹,0)  (7)

Here, if we solve the special conjugacy problem of SL(2,Z_(p)), we can obtain xθ₁(y). The special conjugacy problem is a problem of obtaining x′ which satisfies Inn(x′)=Inn(x) when Inn(x) is given.

In addition, if we assume that (x₁,y₁)∈G satisfies x₁θ₁(y₁)=xθ₁(y), then for b≠0, we can easily obtain equation 8 by using the fact that Z_(p) is an abelian group and θ₁ is a homomorphism.

$\begin{matrix} {{x_{1}{\theta\left( y_{1} \right)}(a)_{\theta}(b)\left( x_{1}^{- 1} \right)} = {x_{1}{\theta_{1}\left( y_{1} \right)}a\mspace{11mu}{\theta_{1}\left( y_{1} \right)}^{- 1}{\theta_{1}(b)}x_{1}^{- 1}{\theta_{1}(b)}^{- 1}}} \\ {= {\left( {x_{1}{\theta_{1}\left( y_{1} \right)}} \right)a\mspace{11mu}{\theta_{1}\left( y_{1} \right)}^{- 1}{\theta_{1}(b)}\theta_{1}y_{1}{\theta_{1}(y)}^{- 1}x^{- 1}{\theta_{1}(b)}^{- 1}}} \\ {= {\left( {x\mspace{11mu}{\theta_{1}(y)}} \right)a\mspace{11mu}{\theta_{1}\left( {{- y_{1}} + b + y_{1}} \right)}{\theta_{1}(y)}^{- 1}x^{- 1}{\theta_{1}(b)}^{- 1}}} \end{matrix}$ =xθ ₁(y)aθ ₁(b)θ₁(y)⁻¹ x ⁻¹θ₁(b)⁻¹ =xθ ₁(y)aθ ₁(y)⁻¹θ₁(b)x ⁻¹θ₁(b)⁻¹ =xθ(y)(a)θ(b)(x ⁻¹)  (8)

That is, the set of solutions for the special conjugacy problem can be expressed as equation 9. S=Inn⁻¹(Inn(g))={(x ₁ ,y ₁)|y ₁ ∈Z _(p) ,x ₁ =±xθ ₁(y−y ₁)}  (9)

Here, the number |S| of elements of S is 2p.

If Inn(g)=Inn(g₁), Inn(g⁻¹g₁)=Id. This means that g⁻¹g₁ is an element of the center of G. Also for any central element g_(o), Inn(GG₀)=Inn(g). So we know that the number of the central element of G is 2p.

Note that the probability to choose m and g in the center is 2p/p³=1/p²≈0, 2p/p⁴=2/p³≈0 In addition, m is chosen from SL(2,Z_(p)) which is a subgroup of G.

If the non abelian group G is generated by equation 4, a generator set of SL(2,Z_(p)) is {T, S}.

This can be expressed as follows.

$\left\{ {{T = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix}},{S = \begin{pmatrix} 0 & {- 1} \\ 1 & 0 \end{pmatrix}}} \right\}$

There exists an algorithm which find a decomposition of each element g ∈SL(2,Z_(p)) of SL(2,Z_(p)). That is, an arbitrary element g of SL(2,Z_(p)) is computed by equation 10. g=S ^(i) ⁰ T ^(j) ¹ ST ^(j) ² . . . ST ^(j) ^(n) S ^(i) ^(n+1)   (10)

Where i_(o), i_(n+1) may be ‘0’ or ‘1’ and j_(n)=±1, ±2, . . . .

If m∈SL(2,Z_(p)), then m can be expressed as equation 11 (Herein below, referred to as “Theorem 1”). m=T ^(j) ¹ ST ^(j) ² ST ^(j) ³   (11)

To prove this, if we compute T^(j) ¹ ST^(j) ² ST^(j) ³ , we obtain equation 12.

$\begin{matrix} {{\begin{pmatrix} 1 & j_{1} \\ 0 & 1 \end{pmatrix}\begin{pmatrix} 0 & {- 1} \\ 1 & 0 \end{pmatrix}\begin{pmatrix} 1 & j_{2} \\ 0 & 1 \end{pmatrix}\begin{pmatrix} 0 & {- 1} \\ 1 & 0 \end{pmatrix}\begin{pmatrix} 1 & j_{3} \\ 0 & 1 \end{pmatrix}} = \begin{pmatrix} {{j_{1}j_{2}} - 1} & {{j_{1}j_{2}j_{3}} - j_{3} - j_{1}} \\ j_{2} & {{j_{2}j_{3}} - 1} \end{pmatrix}} & (12) \end{matrix}$

From equation 12 and a fact that Z_(p) is a field, we can find j₁, j₂, j₃ which satisfies m=T^(j) ¹ ST^(j) ² ST^(j) ³ for any given m∈SL(2,Z_(p)). That is, if the three values j₁, j₂, j₃ are determined, all elements of SL(2,Z_(p)) are determined.

Since {(T,0), (S,0),(I,1)} is a generator set of G, if we know gTg⁻¹, gSg⁻¹ and g(I,1)g⁻¹, we can obtain Inn(g). In addition, since m∈SL(2,Z_(p)) and SL(2,Z_(p)) is a normal subgroup of G, Inn(g) can be restricted to SL(2,Z_(p)) and Inn(g)|_(SL(2,Z) _(p) ₎ becomes an automorphism of SL(2,Z_(p)). Hence, the public key is Inn(g)|_(SL(2,Z) _(p) ₎ and Inn(g^(a))|_(SL(2,Z) _(p) ₎. Therefore, if {gTg⁻¹, gSg⁻¹} is known, we can express Inn(g)|_(SL(2,Z) _(p) ₎.

We choose θ₁ (1) among elements of SL(2,Z_(p)) whose order is p, e.g. I+δ 12.

A method of choosing the element g of non abelian group G in Inn(g) is as follows.

For (x,y)∈G, (x,y)^(n)=((xθ₁(y))^(n)θ₁(y)^(−n),ny) (Herein after referred to as “Theorem 2”). To prove this, an induction method and equation 13 below are used. (x,y)^(k+1)=(x,y)^(k)(x,y)=((xθ ₁(y))^(k)θ₁(b)^(−k) ,ky)(x,y) =((xθ ₁(y))^(k)θ₁(y)^(−k)θ(y)^(k)(x),(k+1)y) =((xθ ₁(y))^(k)θ₁(y)^(−k)θ₁(y)^(k) xθ ₁(y)^(−k),(k+1)y =((xθ ₁(y))^(k)(xθ ₁(y))θ₁(y)^(−(k+1)),(k+1)y) =((xθ ₁(y))^(k+1)θ₁(y)^(−(k+1)),(k+1)y)  (13)

Here, if we determine xθ₁(y) to be A(I+cδ₁₂)A⁻¹ for some fixed c∈Z_(p) and A∈SL(2,Z_(p)), then we can choose g whose order is p and we can know that the order of Inn(g) is p according to Theorem 2.

If we choose g arbitrarily and the order of g is not fixed, then we can increase the security since we should know the order of a given cyclic group to apply a known algorithm for Discrete Logarithm Problem (DLP). That is, we should solve DLP under the assumption that the order of g is p for each d|(p+1)(p−1).

The present invention described above maintains the security since DLP can not be solved in Inn(g) easily. This will be described below in detail.

In case that we solve DLP to obtain the secret key a from the public key Inn(g) and Inn(g^(a)), it seems that the fastest algorithm (e.g., index calculus) to solve DLP can not be applied. So, if the order of g is p, then an expected run time for solving DLP is O(√{square root over (P)})—group operations.

In addition, the second method of obtaining the secret key is as follows. The special conjugacy problem in G is not a hard problem and the DLP in G is not a hard problem too as seen in equation 14. (x,y)^(a)=((xθ ₁(y))^(n)θ₁(y)^(−n) ,ay)=(X,Y)  (14)

We need to solve ay=Y for solving DLP for g and g^(a). However, in case only Inn(g^(a)) is given, since the number of elements of S={g₁|Inn(g₁)=Inn(g^(a))} is 2p, we need O(p) times of trials to find g^(a) in S. So this method is less efficient than finding a from Inn(g) and Inn(g^(a)) directly.

If we choose 160-bit prime p, the security of the present invention becomes similar to 1024 bit RSA. (That is, an expected run time for solving DLP in Inn(g) and for factorization in 1024-bit RSA is about 2⁸⁷ and 2⁸⁰, respectively.) Also, Inn(g) is contained in Aut(G)⊂End(G)⊂G^(G), where End(G) is the endomorphism group of G and G^(G) is the set of all functions from G to G. We cannot apply the index calculus to any of them since they are not even expressed as matrix groups.

Here, if we compare the present invention with RSA and XTR, we can note that the present invention has the following advantage. That is, in RSA and XTR, an expected run time to find the secret key from the public key is sub-exponential, while an exponential run time O√{square root over (p)} is taken in the present invention.

Now, a method of calculating Inn(g^(b)) from Inn(g) will be described. The calculation of Inn(g²) is as equations 15 and 16. Inn(g ²)(S)=Inn(g)(T ^(j) ¹ ST ^(j) ² ST ^(j) ³ ) =(Inn(g)(T))^(j) ¹ (Inn(g)(S))(Inn(g)(T))^(j) ² (Inn(g)(S))(Inn(g)(T))^(j) ³   (15) Inn(g ²)(T)=Inn(g)(T ^(l) ¹ ST ^(l) ² ST ^(l) ³ ) =(Inn(g)(T))^(l) ¹ (Inn(g)(S))(Inn(g)(T))^(l) ² (Inn(g)(S))(Inn(g)(T))^(l) ³   (16)

In addition, we can obtain (Inn(g)(T))^(j) from Inn(g)(T) using 4 times of multiplications by equation 17.

$\begin{matrix} {{{{If}\mspace{14mu}{Inn}\;(g)(T)} = \begin{pmatrix} x & y \\ z & w \end{pmatrix}},{{{then}\mspace{14mu}\left( {{{Inn}(g)}(T)} \right)^{j}} = \begin{pmatrix} {1 - {j\left( {1 - x} \right)}} & {j\; y} \\ {{- j}\; z} & {1 + {j\left( {w - 1} \right)}} \end{pmatrix}}} & (17) \end{matrix}$

It takes 92 multiplications for computing Inn(g²)(S) and Inn(g²)(T). So it takes about 92log₂p multiplications for computing Inn(g^(b)) from Inn(g) and it takes about 92log₂p multiplications for computing Inn(g^(ab)) from Inn(g^(a)). So number of multiplications for encryption is 184log₂p. Since one multiplication needs 0((log₂p)²)-bit operations, the encryption needs about 184(log₂p)³C≈8×10⁸C-bit operations for some constant C. In 1024-bit RSA, it takes (log₂n)³C≈(1024)³C≈10⁹C-bit operations. If the public exponent in RSA encryption scheme is 32-bit number, then it takes 3.2×10⁷C-bit operations.

According to the present invention, a modification is possible to facilitate a fast encryption and decryption. This will be described in detail below.

For example, in case where ‘A’ want to send an encrypted message to ‘B’, ‘A’ computes Inn(g^(a))^(b) and Inn(g^(b)) only at the first communication and send Inn(g^(b)) to ‘B’. ‘B’ computes Inn(g^(b))^(−a) by using the received Inn(g^(b)). After ‘A’ encrypts a message m as a ciphertext E=Inn(g^(a))^(b)(m) for a fixed b after first communication of message m, ‘A’ sends the ciphertext E to ‘B’. ‘B’ can decrypt E by computing Inn(g^(b))^(−a) (E).

That is, in order to compute Inn(g^(a))^(b)(m) from given Inn(g^(a))^(b) and m, it takes 46multiplications so it takes about 1.2×10⁶C-bit operations in encryption. Even if 32-bit public exponent is used in RSA, 3.2×10⁷C-bit operations are needed in encryption. Encryption using the present invention is about 30 times faster than 1024-bit RSA.

In decryption, we need the same number of multiplications as the encryption. In decryption of RSA, it takes about 2.5×10⁸C-bit operations even if we use the. “Chinese Remainder Theorem. Thus, the decryption according to the present invention is 200 times faster than that of RSA.

In ECC, since b is not fixed, precomputations of g^(b) is impossible. Then, the number of multiplications for decryption in 170-bit ECC are 1900, respectively. Then, the decryption according to the present invention is about 40 times faster than ECC.

In addition, in ECC, it need O(log₂p) multiplications in decryption, so the number of multiplications will increase linearly with respect to the number of bits log₂p. In contrast, the decryption of the present invention needs 46 multiplications independent of the size of p. Table 1 below shows comparison of decryption between the present invention and ECC.

TABLE 1 Public key cryptosystem of the present r-bit invention (r-bit) ECC r = 170 46 1900 r = 240 46 2700 r = 310 46 3500

Note that the cryptosystems in the same row have the roughly same securities.

Now, the present invention will be described in view of key expression and key size. In the present invention, since Inn(g^(a))(T) and Inn(g^(a))(S) can be considered as elements of SL(2,Z_(p)), we can express them by three entries. Since Inn(g^(a))(T) can be expressed by 3log₂p-bit, 6log₂p-bit are needed to express Inn(g^(a)), if p is a 160-bit prime number, then it takes 960-bit to express Inn(g^(a)). So we can express the public key with smaller size than RSA. The secret key size is log₂p≈160-bit so it is much smaller than 1024-bit RSA.

The present invention described above provides a new public key cryptosystem using finite non abelian groups and suggests an example of finite non abelian groups which can be used in the encryption scheme described above. The encryption scheme described above can be applied to other non abelian groups. However, we must be careful in choosing the non abelian groups for the security of encryption.

That is, the existence of abelian normal subgroup which is not center reduces the security of the cryptosystems. So any abelian normal subgroup must be of small order, and the algorithm to express an element of G by a product of generators must be efficient. In addition, since Inn(g) is expressed as {Inn(g)(e_(i))∈G |e_(i) is a generator}, the number of generators must be small.

Further, we can use other, homomorphisms from G to Aut(G) instead of the inner automorphism.

On the other hand, the public key described above is applicable to various fields such as digital signature, key exchange, etc,. The digital signature scheme and key exchange method using the public key cryptosystem will be described below.

A digital signature scheme using the public key cryptosystem is illustrated in FIGS. 3 and 4. For example, let us assume that ‘A’ signs while sending a plain text M to ‘B’. The digital signature scheme is effected by using the public keys Inn(g), Inn(g^(a)) and the secret key a generated through the steps illustrated in FIG. 1. The singing procedure is as shown in FIG. 3.

‘A’ selects a random number b (an integer random sampled from arbitrary integer) (step S31) and then computes Inn(g^(b)) by using the random number b (step S32). A symmetric key K is generated using the Inn(g^(b)) (step S33), and a plain text (message) M containg an agreed upon type of redundancy is encrypted to obtain a ciphertext E by using the symmetric key K (step S34).

Next, a hash function h=h(E) is computed by using the ciphertext E (step S35) and a signature s is computed by equation 18 (step S36). s=ah+b(modp)  (18)

‘A’ sends the ciphertext E and the signature s to ‘B’.

A procedure of confirming the signature described above is as shown in FIG. 4. ‘B’ checks whether the transmitted signature s exists in a range of 0≦s<p (step S41). ‘A’ computes the hash function h=h(E) (step S42) and computes Inn(g^(s)) Inn(g^(−ha)) (step S43). Next, the symmetric key K is recovered using the Inn(g^(s)) Inn(g^(−ha)) (step S44), and the ciphertext E containg an agreed upon type of redundancy is decrypted by using the symmetric key K and checks whether agreed is appropriate to check the validity of the signature (steps S45 and steps 46). If the signature is valid, the plain text (meesage) M is accepted as the valid message.

In the digital signature scheme, the encryption can be effected using Inn(g^(ab))(m) instead of the symmetric key K. Then, there is no problem in encryption and decryption using even with the random number b fixed.

A key exchange method using the public key cryptosystem described above is described in FIG. 5. For example, in case of exchanging keys between ‘A’ and ‘B’, the key exchange is effected using the public key Inn(g) generated through the steps illustrated in FIG. 1. Procedure of the key exchange is as shown in FIG. 5.

‘A’ selects the random number a (step S51), and then computes Inn(g^(a)) using the random number a (step S52). Then, ‘A’ sends Inn(g^(a)) to ‘B’. ‘B’ selects the random number b (step S53), computes Inn(g^(ab)) using the random number b (step S54), and generates the symmetric key K using the Inn(g^(ab)) (step S55).

Next ‘B’ computes Inn(g^(b)) and sends it to ‘A’ (step S56), and computes Inn(g^(ab)) using Inn(g^(b)) and the random number a (step S57). Then, ‘A’ obtains the symmetric key K from Inn (g^(ab)) (step 58).

The cryptosystem described above can be generalized as follows. The reason why the inner automorphism group is used is that although in general it is not easy to know the automorphism group, it is easy to know the inner automouphism group which is a subgroup of the automorphism group. However, if we know another subgroup of the automorphism group the generalization of the cryptosystem can be made. It can be described in detail as follows. When a homomorphism Φ:G→Aut(G′) for groups G and G′ is given, the cryptosystem using the DLP in Φ (G) is made in the same way as the cryptosystem using the DLP in Inn(G). That is, Φ is applied instead of Inn which is used in the above description. In this case, the message m is selected from G′, and E=Φ (g)^(ab)(m). The security in this case is closely related to the size of Ker(Φ) in the same way as that the security in case of using the inner automorphism group Inn(G) is closely related to the size of center which is Ker(Inn).

The generalized cryptosytem described above is a big system including E1Gamal-type encryption. E1Gamal-type is a special case described above when G=Z_(p-1), G′=Z_(p). We can consider the following example.

When θ₁:Z_(m)→Z*₁=Aut(Z₁), θ₁(1)=α and (α,m)=1, we can make H=Z₁xθ₁Z_(m). Here, let the order at Z*₁ of a be |α|. We can define an isomorphism which is θ₂: Z_(n)→Aut(H), θ₂(1)(x,y)=(sx,ty) for s, t which satisfy (s, 1)=1, (t, m)=1, |α||t−1, and then we can make a solvable group G=(Z₁xθ₁ Z_(m))xθ₂ Z_(n) therefrom.

The basic system using the Discrete Logarithm in Inn(G) for G defined thus has a weak point due to the existence of abelian normal group. However, the weak point can be complemented by letting Φ=Inn∘Inn:G→Inn(Inn(G)), G′=Inn(G), and using the generalized system. In addition, by solving the special conjugacy problem of G, an element of arbitrary Inn(G) can be easily expressed by a product of generators.

Since the special conjugacy problem of G is easily solved by taking |t| and |s| sufficiently small, an arbitrary element can be easily expressed by a product of generators. In addition, when r₁=|α|, we select r₁, m, t which satisfy 1 cm(m/t−1, r₁)>>m/t−1.

The present invention described above can provide the following effects by using the Discrete Logarithm Problem in the inner automorphism of finite non abelian groups.

First, the application of exponential run time algorithm to solve the DLP quickly can be avoided, second, the security can be maintained without depending on the DLP by using non abelian groups which have large centers, third, the high speed of encryption/decryption can be achieved since there is no necessity of encrypting by generating different random numbers each time of encrypting the message by applying the deformed ElGamal method, and fourth, the public key encrypting method can be easily used to the signature different from the situation in which there was difficulty when the public key encryption method using the existing non abelian groups is used in signature.

Since those having ordinary knowledge and skill in the art of the present invention will recognize additional modifications and applications within the scope thereof, the present invention is not limited to the embodiments and drawings described above. 

1. A method of encryption and decryption of public key cryptosystem using finite non abelian groups, comprising the steps of: selecting a first generator and a first element of a first non abelian group, respectively, computing a first inner automorphism which is used as a first public key, and generating a second public key by using a secret key being a first integer and said first public key; expressing a plain text by a product of a second generator of a second non abelian group, computing a second inner automorphism by using an arbitrary second integer and said first public key, computing a third inner automorphism by using said second integer and said second public key, and generating a ciphertext by using said third inner automorphism; and generating a fourth inner automorphism by using said secret key and said second inner automorphism, and decrypting said ciphertext by using said fourth inner automorphism.
 2. The method of claim 1, wherein said first non abelian group G is expressed as following equation; G=SL(2, Z _(p))x _(θ) Z _(p) Where SL(2,Z_(p)) is a non abelian group, and θ is a homomorphism to automorphism group of SL(2,Z_(p)) at Z_(p).
 3. The method of claim 1, wherein said second non abelian group is identical to said first non abelian group or is a partial set of said first non abelian group.
 4. The method of claim 1, wherein said second non abelian group is expressed as SL(2,Z_(p)).
 5. The method of claim 1, wherein said first element is not a central element of said first non abelian group but a prime number having a large order.
 6. The method of claim 1, wherein said first inner automorphism Inn(g) is computed by following equation; Inn(g)={Inn(g)(T)=gTg ⁻¹,Inn(g)(S)=gSg ⁻¹} Where T and S are generators of said second non abelian group SL(2, Z_(p)), and g is said first element.
 7. The method of claim 1, wherein said secret key is a first integer smaller than a predetermined prime number.
 8. The method of claim 1, wherein said second element m is expressed as the product of generators T and S as expressed by following equation; m=T ^(j) ¹ ST ^(j) ² ST ^(j) ³ Where J_(n)=±1, ±2 . . . , and n is an integer, and $\left\{ {{T = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix}},{S = \begin{pmatrix} 0 & {- 1} \\ 1 & 0 \end{pmatrix}}} \right\}.$
 9. The method of claim 8, wherein if an inner automorphism Inn(g)(T) of said generator T is expressed as equation A, Inn(g)(T^(j)) is calculated by equation B; $\begin{matrix} {{{{Inn}(g)}(T)} = \begin{pmatrix} x & y \\ z & w \end{pmatrix}} & (A) \\ {\left( {{{Inn}(g)}(T)} \right)^{j} = \begin{pmatrix} {1 - {j\left( {1 - x} \right)}} & {j\; y} \\ {{- j}\; z} & {1 + {j\left( {w - 1} \right)}} \end{pmatrix}} & (B) \end{matrix}$ where j is an integer.
 10. The method of claim 1, wherein said second integer b varies, whenever said ciphertext E is generated, so as to enable high speed encryption and decryption.
 11. The method of claim 1, wherein said second integer b is fixed, whenever said ciphertext E is generated, so as to enable high speed encryption and decryption.
 12. The method of claim 1, wherein said third inner automorphism is expressed as Inn(g^(b)).
 13. The method of claim 1, wherein said third inner automorphism is expressed as Inn(g^(ab)).
 14. The method of claim 1, wherein said ciphertext E is computed by following equation; E=Inn(g ^(ab))(m)=(Inn(g ^(a))^(b))(m) Where Inn(g^(ab)) is said third inner automorphism and m is said second element.
 15. The method of claim 1, wherein said fourth inner automorphism is expressed as following equation; Inn(g ^(−ab))=(Inn(g ^(b)))^(−a) where Inn(g ^(b)) is said second inner automorphism, and a is said first integer.
 16. The method of claim 1, wherein said ciphertext is decrypted by following equation; m=Inn(g ^(−ab))(E) Where m is said second element and Inn(g^(−ab)) is said fourth inner automorphism.
 17. A signature scheme in a public key cryptosystem using finite non abelian groups, comprising the steps of: selecting generators and an element of non abelian group, respectively, computing a first inner automorphism which is used as a first public key, and generating a second public key by using a secret key being an integer and said first public key; computing a second inner automorphism by using said first public key and an arbitrary random number, generating a symmetric key by using said second inner automorphism, computing a ciphertext by encrypting a plain text containing an agreed upon type of redundancy by using said symmetric key, computing a hash function by using said ciphertext, and signing by using said random number and hash function; and checking whether said signature exists in a predetermined range, computing said hash function, computing a third inner automorphism by using said signature, said integer and said hash function, recovering said symmetric key by using said third inner automorphism, obtaining a deciphertext by using said symmetric key, and checking whether said signature is valid signature by checking an agreed upon redundancy in the deciphertext.
 18. The method of claim 17, wherein said non abelian group G is expressed as following equation; G=SL(2, Z _(p))x _(θ) Z _(p) Where SL(2,Z_(p)) is a non abelian group, and θ0 is a homomorphism to automorphism group of SL(2, Z_(p)) at Z_(p).
 19. The method of claim 17, wherein said element is not a central element of said non abelian group but a prime number having a large order.
 20. The method of claim 17, wherein said first inner automorphism Inn(g) is computed by following equation; Inn(g)={Inn(g)(T)=gTg ⁻¹,Inn(g)(S)=gSg ⁻¹} Where T and S are generators of said non abelian group SL(2, Z_(p)), and g is said element.
 21. The method of claim 17, wherein said second inner automorphism is expressed as Inn(g^(b)), and b is a random number.
 22. The method of claim 17, wherein said hash function h goes from SL(2, Z_(p)) to Z_(p) as shown in following equation, and SL(2, Z_(p)) is a non abelian group; h=h(E) Where E is a ciphertext.
 23. The method of claim 17, wherein said signature s is computed by following equation; s=ah+b(modp) Where a is a secret key, h is a hash function, b is a random number, and p is a prime number.
 24. The method of claim 17, wherein said signature exists in the range of 0≦s<p.
 25. The method of claim 17, said third inner automorphism is expressed as Inn(g^(s)) Inn(g^(−ha)), and a is a secret key and h is a hash function.
 26. A method of key exchanging in a public key cryptosystem using finite non abelian groups, comprising the steps of: selecting generators and an element of non abelian group, respectively, and computing a first inner automorphism which is used as a first public key; a first user computing a second inner automorphism by using an arbitrary first random number and said public key and providing said second inner automorphism to a second user; said second user generating a symmetric key by computing a third inner automorphism by using an arbitrary second random number and said second inner automorphism; and said first user computing said third inner automorphism by using said fourth inner automorphism and said first random number, and obtaining said symmetric key by using said third inner automorphism.
 27. The method of claim 26, wherein said non abelian group G is expressed as following equation; G=SL(2, Z _(p))x _(θ) Z _(p) Where SL(2, Z_(p)) is a non abelian group, and θ0 is a homomorphism to automorphism group of SL(2, Z_(p))at Z_(p).
 28. The method of claim 26, wherein said element is not a central element of said first non abelian group but a prime number having a large order.
 29. The method of claim 26, wherein said first inner automorphism Inn(g) is computed by following equation; Inn(g)={Inn(g)(T)=gTg ⁻¹,Inn(g)(S)=gSg ⁻¹} Where T and S are generators of said non abelian group SL(2, Z_(p)), and g is said element.
 30. The method of claim 26, wherein said second inner automorphism is expressed as Inn(g^(a)), and a is first random number.
 31. The method of claim 26, wherein said third inner automorphism is expressed as Inn(g^(ab)), and a is first random number and b is second random number.
 32. The method of claim 26, wherein said fourth inner automorphism is expressed as Inn(g^(b)), and b is second random number.
 33. A method of encryption and decryption of public key cryptosystem using finite non abelian groups, comprising the steps of: selecting a first element of a first group, computing a first automorphism of a second group which is used as a first public key, and generating a second public key by using a secret key being a first integer and said first public key; expressing a plain text by a product of generator of said second group, computing a second automorphism by using an arbitrary second integer and said first public key, computing a third automorphism by using said second integer and said second public key, and generating a ciphertext by using said third automorphism; and generating a fourth automorphism by using said secret key and said second automorphism by using said secret key and said second automorphism, and decrypting said ciphertext by using said fourth antomorphism.
 34. The method of claim 33, wherein said first group G is expressed as following equation; G=(Z ₁ x _(θ1) Z _(m))x _(θ2) Z _(n) Where homomorphism which is θ₁:Z_(m)→Z*₁=Aut(Z₁), θ₁(1)=α, (α,m)=1 and homomorphism which is θ₂:Z_(n)→Aut(H), θ₂(1)(x,y)=(sx,ty) about s, t satisfying (s, 1)=1, (t, m)=1, |α| |t−1.
 35. The method of claim 34, wherein when r₁=|α| in equation 21, r₁, m and t satisfying 1 cm(m/t−1, r₁)>>m/t−1 are selected to raise the stability , and |s| and |t| are selected to be small to make the special conjugacy problem of G to be easily solved, so that element of Inn(G) can be easily expressed as the product of generator.
 36. The method of claim 33, wherein said second group is expressed as Inn(G). 